package entity

import (
	"go.mongodb.org/mongo-driver/bson/primitive"
)

type MaterialLog struct {
	Id         primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID        uint               `bson:"uid" json:"uid"`
	WID        uint               `bson:"wid" json:"wid"`
	TypeID     uint               `bson:"typeID" json:"typeID"`         //开采舰类型
	TypeName   string             `bson:"typeName" json:"typeName"`     //类型名称
	TypeImg    string             `bson:"typeImg" json:"typeImg"`       //类型图片
	TypeModule string             `bson:"typeModule" json:"typeModule"` //类型模块
	LinkID     string             `bson:"linkID" json:"linkID"`         //关联id
	LinkTable  string             `bson:"linkTable" json:"linkTable"`   //关联表
	Ago        int64              `bson:"ago" json:"ago"`               //变动前数量
	Num        int64              `bson:"num" json:"num"`               //数量
	After      int64              `bson:"after" json:"after"`           //变动后数量
	Remarks    string             `bson:"remarks" json:"remarks"`       //备注
	AddTime    string             `bson:"addTime" json:"addTime"`       //添加时间
}

type CardPackage struct {
	Id         primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID        uint               `bson:"uid" json:"uid"`               //用户id
	WID        uint               `bson:"wid" json:"wid"`               //仓库id
	TypeID     uint               `bson:"typeID" json:"typeID"`         //类型id
	TypeName   string             `bson:"typeName" json:"typeName"`     //类型名称
	TypeImg    string             `bson:"typeImg" json:"typeImg"`       //类型图片
	TypeModule string             `bson:"typeModule" json:"typeModule"` //类型模块
	TypeType   int                `bson:"typeType" json:"typeType"`     //类型类型
	Cards      []Card             `bson:"cards" json:"cards"`           //卡牌组
	DonateType int                `bson:"donateType" json:"donateType"` //赠送类型 -1无,0游戏角色,1卡牌,2材料,3装备
	DonateMap  map[string]any     `bson:"donate" json:"donate"`         //赠送map类型
	AddTime    string             `bson:"addTime" json:"addTime"`       //添加时间
}

type Card struct {
	WID        uint   `bson:"wid" json:"wid"`               //仓库id
	TypeID     uint   `bson:"typeID" json:"typeID"`         //类型id
	TypeName   string `bson:"typeName" json:"typeName"`     //类型名称
	TypeImg    string `bson:"typeImg" json:"typeImg"`       //类型图片
	TypeModule string `bson:"typeModule" json:"typeModule"` //类型模块
}

type CardUpgradeLog struct {
	Id          primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID         uint               `bson:"uid" json:"uid"`
	WID         uint               `bson:"wid" json:"wid"`
	TypeID      uint               `bson:"typeID" json:"typeID"`           //类型id
	TypeName    string             `bson:"typeName" json:"typeName"`       //类型名称
	TypeImg     string             `bson:"typeImg" json:"typeImg"`         //类型图片
	TypeModule  string             `bson:"typeModule" json:"typeModule"`   //类型模块
	ConsumeWID  string             `bson:"consumeWID" json:"consumeWID"`   //消耗卡牌id
	TotalAgo    int64              `bson:"totalAgo" json:"totalAgo"`       //总变动前数量
	TotalAfter  int64              `bson:"totalAfter" json:"totalAfter"`   //总变动后数量
	OutputAgo   int64              `bson:"outputAgo" json:"outputAgo"`     //产能变动前数量
	OutputAfter int64              `bson:"outputAfter" json:"outputAfter"` //产能变动后数量
	AddTime     string             `bson:"addTime" json:"addTime"`         //添加时间
}

type TransferLog struct {
	Id              primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID             uint               `bson:"uid" json:"uid"`                         //用户id
	Phone           string             `bson:"phone" json:"phone"`                     //手机号
	InviteCode      int64              `bson:"inviteCode" json:"inviteCode"`           //邀请码
	Other           uint               `bson:"other" json:"other"`                     //对方id
	OtherPhone      string             `bson:"otherPhone" json:"otherPhone"`           //对方手机号
	OtherInviteCode int64              `bson:"otherInviteCode" json:"otherInviteCode"` //对方邀请码
	Type            int                `bson:"type" json:"type"`                       //1=转出,2=转入,3=间接收益放
	WID             uint               `bson:"wid" json:"wid"`                         //仓库id
	TypeID          uint               `bson:"typeID" json:"typeID"`                   //类型id
	TypeName        string             `bson:"typeName" json:"typeName"`               //类型名称
	TypeImg         string             `bson:"typeImg" json:"typeImg"`                 //类型图片
	TypeModule      string             `bson:"typeModule" json:"typeModule"`           //类型模块
	TypeType        int                `bson:"typeType" json:"typeType"`               //1=卡牌,2=材料,3=装备
	Num             int64              `bson:"num" json:"num"`                         //数量
	Fee             float64            `bson:"fee" json:"fee"`                         //手续费
	Obtain          uint               `bson:"obtain" json:"obtain"`                   //手续费获得方uid
	OtherNum        int64              `bson:"otherNum" json:"otherNum"`               //对方获得数量
	OtherObtainFee  int64              `bson:"otherObtainFee" json:"otherObtainFee"`   //对方获得手续费
	AddTime         string             `bson:"addTime" json:"addTime"`                 //添加时间
}

type WarehouseMoneyExtract struct {
	Id          primitive.ObjectID `bson:"_id,omitempty" json:"id,omitempty"`
	UID         uint               `bson:"uid" json:"uid"`               //用户id
	WID         uint               `bson:"wid" json:"wid"`               //仓库id
	TypeID      uint               `bson:"typeID" json:"typeID"`         //类型id
	TypeName    string             `bson:"typeName" json:"typeName"`     //类型名称
	TypeImg     string             `bson:"typeImg" json:"typeImg"`       //类型图片
	TypeModule  string             `bson:"typeModule" json:"typeModule"` //类型模块
	Name        string             `bson:"name" json:"name"`             //提取人
	BankCardNum string             `bson:"code" json:"code"`             //银行卡号
	Money       int64              `bson:"money" json:"money"`           //金额
	Status      int                `bson:"status" json:"status"`         //状态 0=待审核,1=审核通过,2=审核不通过
	Remark      string             `bson:"remarks" json:"remarks"`       //拒绝原因
	AddTime     string             `bson:"addTime" json:"addTime"`       //添加时间
	GrantTime   string             `bson:"grantTime" json:"grantTime"`   //发放时间
}
